home *** CD-ROM | disk | FTP | other *** search
- ; -*- Mode: Lisp; Syntax: Common-Lisp; Package: SCHEME-TRANSLATOR; -*-
-
- ; This file was generated by Pseudoscheme 2.8a
- ; running in Lucid Common Lisp 4.0.1
- ; from file /amd/night/b/jar/pseudo/alpha.scm
-
- (SCHI:BEGIN-TRANSLATED-FILE)
- (DEFUN NOTE-CONTEXT!
- (CONTEXT NODE)
- (FUNCALL CONTEXT NODE))
- (SCHI:SET-VALUE-FROM-FUNCTION 'NOTE-CONTEXT!
- 'SCHEME::NOTE-CONTEXT!)
- (LOCALLY (DECLARE (SPECIAL VALUE-CONTEXT
- SET-VALUE-REFS!))
- (SETQ VALUE-CONTEXT SET-VALUE-REFS!))
- (SCHI:SET-FUNCTION-FROM-VALUE 'VALUE-CONTEXT
- 'SCHEME::VALUE-CONTEXT)
- (LOCALLY (DECLARE (SPECIAL PROCEDURE-CONTEXT
- SET-PROC-REFS!))
- (SETQ PROCEDURE-CONTEXT SET-PROC-REFS!))
- (SCHI:SET-FUNCTION-FROM-VALUE 'PROCEDURE-CONTEXT
- 'SCHEME::PROCEDURE-CONTEXT)
- (LOCALLY (DECLARE (SPECIAL LVALUE-CONTEXT
- SET-ASSIGNED!))
- (SETQ LVALUE-CONTEXT SET-ASSIGNED!))
- (SCHI:SET-FUNCTION-FROM-VALUE 'LVALUE-CONTEXT
- 'SCHEME::LVALUE-CONTEXT)
- (DEFUN DEFINE-CONTEXT
- (VAR)
- VAR
- 'SCHEME::DEFINE-CONTEXT)
- (SCHI:SET-VALUE-FROM-FUNCTION 'DEFINE-CONTEXT
- 'SCHEME::DEFINE-CONTEXT)
- (DEFUN TOP-LEVEL-CONTEXT
- (VAR)
- VAR
- 'SCHEME::TOP-LEVEL-CONTEXT)
- (SCHI:SET-VALUE-FROM-FUNCTION 'TOP-LEVEL-CONTEXT
- 'SCHEME::TOP-LEVEL-CONTEXT)
- (DEFUN LOSE
- (CONTEXT)
- (DECLARE (SPECIAL VALUE-CONTEXT))
- CONTEXT
- VALUE-CONTEXT)
- (SCHI:SET-VALUE-FROM-FUNCTION 'LOSE 'SCHEME::LOSE)
- (LOCALLY (DECLARE (SPECIAL @FREE-VARIABLES))
- (SETQ @FREE-VARIABLES (MAKE-FLUID 'NIL)))
- (SCHI:SET-FUNCTION-FROM-VALUE '@FREE-VARIABLES
- 'SCHEME::@FREE-VARIABLES)
- (DEFUN ALPHA-TOP
- (FORM S-ENV)
- (DECLARE (SPECIAL TOP-LEVEL-CONTEXT))
- (ALPHA FORM S-ENV TOP-LEVEL-CONTEXT))
- (SCHI:SET-VALUE-FROM-FUNCTION 'ALPHA-TOP
- 'SCHEME::ALPHA-TOP)
- (LOCALLY (DECLARE (SPECIAL @WHERE))
- (SETQ @WHERE (MAKE-FLUID 'SCHEME::<TOP>)))
- (SCHI:SET-FUNCTION-FROM-VALUE '@WHERE 'SCHEME::@WHERE)
- (DEFUN ALPHA
- (FORM S-ENV CONTEXT)
- (DECLARE (SPECIAL ALPHATIZERS))
- (WITH-VALUES #'(LAMBDA NIL
- (CLASSIFY FORM S-ENV))
- #'(LAMBDA (CLASS FORM@0 S-ENV@1)
- (FUNCALL (SVREF ALPHATIZERS CLASS) FORM@0 S-ENV@1
- CONTEXT))))
- (SCHI:SET-VALUE-FROM-FUNCTION 'ALPHA 'SCHEME::ALPHA)
- (LOCALLY (DECLARE (SPECIAL ALPHATIZERS
- NUMBER-OF-CLASSES))
- (SETQ ALPHATIZERS (MAKE-VECTOR NUMBER-OF-CLASSES)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'ALPHATIZERS
- 'SCHEME::ALPHATIZERS)
- (DEFUN DEFINE-ALPHATIZER
- (CLASS PROC)
- (DECLARE (SPECIAL ALPHATIZERS))
- (SETF (SVREF ALPHATIZERS CLASS) PROC)
- SCHI:UNSPECIFIED)
- (SCHI:SET-VALUE-FROM-FUNCTION 'DEFINE-ALPHATIZER
- 'SCHEME::DEFINE-ALPHATIZER)
- (SCHI:AT-TOP-LEVEL
- (LOCALLY (DECLARE (SPECIAL CLASS/LITERAL))
- (DEFINE-ALPHATIZER CLASS/LITERAL
- #'(LAMBDA (.EXP S-ENV CONTEXT) S-ENV CONTEXT
- (MAKE-CONSTANT .EXP SCHI:FALSE)))))
- (SCHI:AT-TOP-LEVEL
- (LOCALLY (DECLARE (SPECIAL @FREE-VARIABLES CLASS/NAME))
- (DEFINE-ALPHATIZER CLASS/NAME
- #'(LAMBDA (.EXP S-ENV CONTEXT)
- (LET ((DENOTATION (LOOKUP S-ENV .EXP)))
- (IF (SCHI:TRUEP (NODE? DENOTATION))
- (PROGN
- (IF
- (SCHI:TRUEP (LOCAL-VARIABLE? DENOTATION))
- (NOTE-CONTEXT! CONTEXT DENOTATION)
- (LET ((FREE (FLUID @FREE-VARIABLES)))
- (IF
- (NOT
- (MEMBER DENOTATION FREE :TEST #'EQ))
- (SET-FLUID! @FREE-VARIABLES
- (CONS DENOTATION FREE)))))
- DENOTATION)
- (ALPHA
- (SYNTAX-ERROR
- "syntactic keyword in invalid position"
- .EXP)
- S-ENV CONTEXT)))))))
- (SCHI:AT-TOP-LEVEL
- (LOCALLY
- (DECLARE (SPECIAL VALUE-CONTEXT
- PROCEDURE-CONTEXT
- CLASS/APPLICATION))
- (DEFINE-ALPHATIZER CLASS/APPLICATION
- #'(LAMBDA (.EXP S-ENV CONTEXT) CONTEXT
- (MAKE-CALL
- (ALPHA (CAR .EXP) S-ENV PROCEDURE-CONTEXT)
- (MAPCAR
- #'(LAMBDA (ARG) (ALPHA ARG S-ENV VALUE-CONTEXT))
- (CDR .EXP)))))))
- (SCHI:AT-TOP-LEVEL
- (LOCALLY (DECLARE (SPECIAL CLASS/QUOTE))
- (DEFINE-ALPHATIZER CLASS/QUOTE
- #'(LAMBDA (.EXP S-ENV CONTEXT) S-ENV CONTEXT
- (MAKE-CONSTANT (CADR .EXP) SCHI:TRUE)))))
- (SCHI:AT-TOP-LEVEL
- (LOCALLY
- (DECLARE
- (SPECIAL VALUE-CONTEXT
- SET-CLOSED-OVER!
- PROCEDURE-CONTEXT
- CLASS/LAMBDA))
- (DEFINE-ALPHATIZER CLASS/LAMBDA
- #'(LAMBDA (.EXP S-ENV CONTEXT)
- (IF (NOT (EQ CONTEXT PROCEDURE-CONTEXT))
- (FOR-EACH-LOCAL SET-CLOSED-OVER! S-ENV))
- (LET
- ((S-ENV@0
- (RENAME-VARS (PROPER-LISTIFY (CADR .EXP)) S-ENV)))
- (MAKE-LAMBDA (NEW-NAMES (CADR .EXP) S-ENV@0)
- (ALPHA-BODY (CDDR .EXP) S-ENV@0 VALUE-CONTEXT)))))))
- (SCHI:AT-TOP-LEVEL
- (LOCALLY (DECLARE (SPECIAL VALUE-CONTEXT CLASS/LETREC))
- (DEFINE-ALPHATIZER CLASS/LETREC
- #'(LAMBDA (.EXP S-ENV CONTEXT)
- (LET ((SPECS (CADR .EXP)))
- (LET ((VARS (MAPCAR #'CAR SPECS)))
- (LET ((S-ENV@0 (RENAME-VARS VARS S-ENV)))
- (LET
- ((NEW-VARS (NEW-NAMES VARS S-ENV@0)))
- (MAKE-LETREC NEW-VARS
- (MAPCAR
- #'(LAMBDA (SPEC)
- (ALPHA (CADR SPEC) S-ENV@0
- VALUE-CONTEXT))
- SPECS)
- (ALPHA-BODY (CDDR .EXP) S-ENV@0
- (LOSE CONTEXT)))))))))))
- (DEFUN ALPHA-BODY
- (FORMS S-ENV CONTEXT)
- (DECLARE (SPECIAL VALUE-CONTEXT))
- (WITH-VALUES #'(LAMBDA NIL
- (SCAN-BODY FORMS S-ENV))
- #'(LAMBDA (SPECS EXPS S-ENV@0)
- (IF (NULL SPECS)
- (ALPHA-BEGINIFY EXPS S-ENV@0 CONTEXT)
- (LET
- ((NEW-VARS
- (MAPCAR
- #'(LAMBDA (SPEC) (MAKE-LOCAL-VARIABLE (CAR SPEC)))
- SPECS)))
- (MAPC
- #'(LAMBDA (SPEC VAR)
- (DEFINE! S-ENV@0 (CAR SPEC) VAR))
- SPECS NEW-VARS)
- (MAKE-LETREC NEW-VARS
- (MAPCAR
- #'(LAMBDA (SPEC)
- (ALPHA (CADR SPEC) (CADDR SPEC) VALUE-CONTEXT))
- SPECS)
- (ALPHA-BEGINIFY EXPS S-ENV@0 (LOSE CONTEXT))))))))
- (SCHI:SET-VALUE-FROM-FUNCTION 'ALPHA-BODY
- 'SCHEME::ALPHA-BODY)
- (SCHI:AT-TOP-LEVEL
- (LOCALLY (DECLARE (SPECIAL VALUE-CONTEXT CLASS/IF))
- (DEFINE-ALPHATIZER CLASS/IF
- #'(LAMBDA (.EXP S-ENV CONTEXT)
- (LET
- ((TEST
- (ALPHA (CADR .EXP) S-ENV VALUE-CONTEXT))
- (CON
- (ALPHA (CADDR .EXP) S-ENV (LOSE CONTEXT)))
- (ALT
- (ALPHA
- (LET ((TAIL (CDDDR .EXP)))
- (IF (NULL TAIL) 'SCHI:UNSPECIFIED
- (CAR TAIL)))
- S-ENV (LOSE CONTEXT))))
- (MAKE-IF TEST CON ALT))))))
- (SCHI:AT-TOP-LEVEL
- (LOCALLY (DECLARE (SPECIAL LVALUE-CONTEXT
- VALUE-CONTEXT
- CLASS/SET!))
- (DEFINE-ALPHATIZER CLASS/SET!
- #'(LAMBDA (.EXP S-ENV CONTEXT) CONTEXT
- (LET
- ((LHS
- (ALPHA (CADR .EXP) S-ENV LVALUE-CONTEXT)))
- (IF (SCHI:TRUEP (VARIABLE? LHS))
- (MAKE-SET! LHS
- (ALPHA (CADDR .EXP) S-ENV VALUE-CONTEXT))
- (.ERROR "invalid SET!" .EXP)))))))
- (SCHI:AT-TOP-LEVEL
- (LOCALLY (DECLARE (SPECIAL CLASS/BEGIN))
- (DEFINE-ALPHATIZER CLASS/BEGIN
- #'(LAMBDA (.EXP S-ENV CONTEXT)
- (ALPHA-BEGINIFY (CDR .EXP) S-ENV CONTEXT)))))
- (DEFUN ALPHA-BEGINIFY
- (EXP-LIST S-ENV CONTEXT)
- (DECLARE (SPECIAL VALUE-CONTEXT
- TOP-LEVEL-CONTEXT))
- (IF (NULL (CDR EXP-LIST))
- (ALPHA (CAR EXP-LIST) S-ENV CONTEXT)
- (MAKE-BEGIN
- (ALPHA (CAR EXP-LIST)
- S-ENV
- (IF (EQ CONTEXT TOP-LEVEL-CONTEXT)
- CONTEXT
- VALUE-CONTEXT))
- (ALPHA-BEGINIFY (CDR EXP-LIST)
- S-ENV
- (IF (EQ CONTEXT TOP-LEVEL-CONTEXT)
- CONTEXT
- (LOSE CONTEXT))))))
- (SCHI:SET-VALUE-FROM-FUNCTION 'ALPHA-BEGINIFY
- 'SCHEME::ALPHA-BEGINIFY)
- (SCHI:AT-TOP-LEVEL
- (LOCALLY
- (DECLARE
- (SPECIAL DEFINE-CONTEXT
- VALUE-CONTEXT
- @WHERE
- TOP-LEVEL-CONTEXT
- CLASS/DEFINE))
- (DEFINE-ALPHATIZER CLASS/DEFINE
- #'(LAMBDA (FORM S-ENV CONTEXT)
- (IF (EQ CONTEXT TOP-LEVEL-CONTEXT)
- (LET
- ((VAR
- (ALPHA (DEFINE-FORM-LHS FORM) S-ENV
- DEFINE-CONTEXT)))
- (IF (NOT (SCHI:TRUEP (PROGRAM-VARIABLE? VAR)))
- (.ERROR "This shouldn't happen" FORM))
- (LET-FLUID @WHERE (PROGRAM-VARIABLE-NAME VAR)
- #'(LAMBDA NIL
- (MAKE-DEFINE VAR
- (ALPHA (DEFINE-FORM-RHS FORM) S-ENV
- VALUE-CONTEXT)))))
- (ALPHA
- (SYNTAX-ERROR
- "(define ...) disallowed in this context" FORM)
- S-ENV CONTEXT))))))
- (SCHI:AT-TOP-LEVEL
- (LOCALLY (DECLARE (SPECIAL TOP-LEVEL-CONTEXT
- CLASS/DEFINE-SYNTAX))
- (DEFINE-ALPHATIZER CLASS/DEFINE-SYNTAX
- #'(LAMBDA (FORM S-ENV CONTEXT)
- (IF (EQ CONTEXT TOP-LEVEL-CONTEXT)
- (PROGN (PROCESS-DEFINE-SYNTAX FORM S-ENV)
- (MAKE-CONSTANT 'SCHEME::DEFINE-SYNTAX
- SCHI:TRUE))
- (ALPHA
- (SYNTAX-ERROR
- "(define-syntax ...) disallowed in this context"
- FORM)
- S-ENV CONTEXT))))))
- (DEFUN INITIALIZE-CORE-SYNTAX
- (ENV)
- (DECLARE
- (SPECIAL CLASS/DEFINE-SYNTAX
- CLASS/DEFINE
- CLASS/LETREC-SYNTAX
- CLASS/LET-SYNTAX
- CLASS/SET!
- CLASS/BEGIN
- CLASS/QUOTE
- CLASS/IF
- CLASS/LETREC
- CLASS/LAMBDA))
- (DEFINE! ENV
- 'SCHEME::LAMBDA
- (MAKE-SPECIAL-OPERATOR CLASS/LAMBDA))
- (DEFINE! ENV
- 'SCHEME::LETREC
- (MAKE-SPECIAL-OPERATOR CLASS/LETREC))
- (DEFINE! ENV
- 'SCHEME::IF
- (MAKE-SPECIAL-OPERATOR CLASS/IF))
- (DEFINE! ENV
- 'SCHEME::QUOTE
- (MAKE-SPECIAL-OPERATOR CLASS/QUOTE))
- (DEFINE! ENV
- 'SCHEME::BEGIN
- (MAKE-SPECIAL-OPERATOR CLASS/BEGIN))
- (DEFINE! ENV
- 'SCHEME::SET!
- (MAKE-SPECIAL-OPERATOR CLASS/SET!))
- (DEFINE! ENV
- 'SCHEME::LET-SYNTAX
- (MAKE-SPECIAL-OPERATOR CLASS/LET-SYNTAX))
- (DEFINE! ENV
- 'SCHEME::LETREC-SYNTAX
- (MAKE-SPECIAL-OPERATOR CLASS/LETREC-SYNTAX))
- (DEFINE! ENV
- 'SCHEME::DEFINE
- (MAKE-SPECIAL-OPERATOR CLASS/DEFINE))
- (DEFINE! ENV
- 'SCHEME::DEFINE-SYNTAX
- (MAKE-SPECIAL-OPERATOR CLASS/DEFINE-SYNTAX)))
- (SCHI:SET-VALUE-FROM-FUNCTION 'INITIALIZE-CORE-SYNTAX
- 'SCHEME::INITIALIZE-CORE-SYNTAX)
- (LOCALLY (DECLARE (SPECIAL REVISED^4-SCHEME-ENV))
- (SETQ REVISED^4-SCHEME-ENV (MAKE-PROGRAM-ENV 'SCHEME::REVISED^4-SCHEME
- 'NIL)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'REVISED^4-SCHEME-ENV
- 'SCHEME::REVISED^4-SCHEME-ENV)
- (LOCALLY (DECLARE (SPECIAL REVISED^4-SCHEME-ENV))
- (INITIALIZE-CORE-SYNTAX REVISED^4-SCHEME-ENV))
- (LOCALLY
- (DECLARE
- (SPECIAL REVISED^4-SCHEME-MODULE
- REVISED^4-SCHEME-ENV
- REVISED^4-SCHEME-SIG))
- (SETQ REVISED^4-SCHEME-MODULE (MAKE-MODULE 'SCHEME::REVISED^4-SCHEME
- REVISED^4-SCHEME-SIG
- REVISED^4-SCHEME-ENV)))
- (SCHI:SET-FUNCTION-FROM-VALUE 'REVISED^4-SCHEME-MODULE
- 'SCHEME::REVISED^4-SCHEME-MODULE)
- (DEFUN BUILT-IN
- (NAME)
- (DECLARE (SPECIAL REVISED^4-SCHEME-ENV))
- (PROGRAM-ENV-LOOKUP REVISED^4-SCHEME-ENV NAME))
- (SCHI:SET-VALUE-FROM-FUNCTION 'BUILT-IN
- 'SCHEME::BUILT-IN)
- (DEFUN READ-FILE
- (FILENAME)
- (LET ((SCHEME::STRING FILENAME)
- (SCHEME::PROC
- #'(LAMBDA (I-PORT)
- (PROG (L) (SETQ L 'NIL) (GO .LOOP) .LOOP
- (LET ((FORM (.READ I-PORT)))
- (IF (EQ FORM SCHI:EOF-OBJECT) (RETURN (REVERSE L))
- (PROGN (SETQ L (CONS FORM L)) (GO .LOOP))))))))
- (WITH-OPEN-FILE
- (SCHEME::PORT (MERGE-PATHNAMES SCHEME::STRING)
- :DIRECTION
- :INPUT)
- (FUNCALL SCHEME::PROC SCHEME::PORT))))
- (SCHI:SET-VALUE-FROM-FUNCTION 'READ-FILE
- 'SCHEME::READ-FILE)
- (DEFUN NOTE
- (MSG NODE)
- (DECLARE (SPECIAL @WHERE))
- (TERPRI)
- (DISPLAY "** ")
- (DISPLAY MSG)
- (IF (SCHI:TRUEP NODE)
- (PROGN (DISPLAY ": ")
- (.WRITE
- (LET-FLUID @WHERE
- 'SCHEME::<NOTE>
- #'(LAMBDA NIL (SCHEMIFY-TOP NODE))))
- (TERPRI)
- (DISPLAY " Location: ")
- (.WRITE (FLUID @WHERE))))
- (TERPRI))
- (SCHI:SET-VALUE-FROM-FUNCTION 'NOTE 'SCHEME::NOTE)
- (DEFUN SYNTAX-ERROR
- (MSG FORM)
- (NOTE MSG FORM)
- (CONS 'SCHI:SCHEME-ERROR
- (CONS (CONS 'SCHEME::QUOTE (LIST MSG))
- (LIST (CONS 'SCHEME::QUOTE
- (LIST FORM))))))
- (SCHI:SET-VALUE-FROM-FUNCTION 'SYNTAX-ERROR
- 'SCHEME::SYNTAX-ERROR)
- (LOCALLY (DECLARE (SPECIAL @UNIQUE-ID))
- (SETQ @UNIQUE-ID (MAKE-FLUID 0)))
- (SCHI:SET-FUNCTION-FROM-VALUE '@UNIQUE-ID
- 'SCHEME::@UNIQUE-ID)
- (DEFUN WITH-UID-RESET
- (THUNK)
- (DECLARE (SPECIAL @UNIQUE-ID))
- (LET-FLUID @UNIQUE-ID 0 THUNK))
- (SCHI:SET-VALUE-FROM-FUNCTION 'WITH-UID-RESET
- 'SCHEME::WITH-UID-RESET)
- (DEFUN GENERATE-UID
- NIL
- (DECLARE (SPECIAL @UNIQUE-ID))
- (LET ((UID (FLUID @UNIQUE-ID)))
- (SET-FLUID! @UNIQUE-ID (+ UID 1))
- UID))
- (SCHI:SET-VALUE-FROM-FUNCTION 'GENERATE-UID
- 'SCHEME::GENERATE-UID)
- (DEFUN MAKE-NAME-FROM-UID
- (NAME UID)
- (DECLARE (SPECIAL @TARGET-PACKAGE))
- (INTERN
- (STRING-APPEND (NAME->STRING NAME)
- "@"
- (NUMBER->STRING UID
- '(SCHEME::HEUR)))
- (FLUID @TARGET-PACKAGE)))
- (SCHI:SET-VALUE-FROM-FUNCTION 'MAKE-NAME-FROM-UID
- 'SCHEME::MAKE-NAME-FROM-UID)
- (DEFUN RENAME-VARS
- (NAMES S-ENV)
- (DECLARE (SPECIAL MAKE-LOCAL-VARIABLE))
- (BIND NAMES
- (MAPCAR MAKE-LOCAL-VARIABLE NAMES)
- S-ENV))
- (SCHI:SET-VALUE-FROM-FUNCTION 'RENAME-VARS
- 'SCHEME::RENAME-VARS)
- (DEFUN NEW-NAMES
- (BVL ENV)
- (MAP-BVL #'(LAMBDA (VAR) (LOOKUP ENV VAR))
- BVL))
- (SCHI:SET-VALUE-FROM-FUNCTION 'NEW-NAMES
- 'SCHEME::NEW-NAMES)
- (DEFUN CAR-IS?
- (THING X)
- (IF (CONSP THING)
- (SCHI:TRUE? (EQ (CAR THING) X))
- SCHI:FALSE))
- (SCHI:SET-VALUE-FROM-FUNCTION 'CAR-IS? 'SCHEME::CAR-IS?)
-